---
title: 컨트리뷰션 가이드
slug: /contributing
sidebar_position: 997
---

오픈소스 기여에 관심이 있으시거나, 저희를 도와 프로젝트를 개선해보고 싶으신가요?
문서, 코드, 데모 제작, 어떤 것이든 상관 없습니다. PR(Pull Request)를 올려주세요!

## PR 가이드
#### 1. 먼저 [View360 Github Repo](https://github.com/naver/egjs-view360)를 Fork해주세요.

우측 상단의 Fork 버튼을 누르시면 됩니다.

#### 2. 포크한 레포지토리를 clone하고, 그 내에서 작업해주세요.
#### 3. 작업하신 내용을 커밋한 이후, master 브랜치를 가리키도록 PR을 올려주세요.

프로젝트에서는 기본적으로 아래의 Angular Commit Guideline을 사용하지만, 반드시 지키실 필요는 없습니다.
- https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit
- 혹은, https://www.conventionalcommits.org/ko/v1.0.0/

대신, PR을 올리신 이후 병합될 때엔 프로젝트 관리자가 해당 커밋 가이드라인을 이용해서 적절한 커밋 메시지를 적용할겁니다.

## 코드 기여 가이드
View360은 [eslint](https://eslint.org/) 및 [editorconfig](https://editorconfig.org/)를 이용해서 코드 스타일을 가능한 일정하게 유지하고 있습니다.
작업하시는 도중에, 현재 사용중이신 IDE에서 각 린터가 정상적으로 작동하고 있는지 확인해주세요.

## 문서 기여 가이드
현재 보고계신 문서는 `demo` 폴더 내에서 `npm run start`를 호출하시면 확인하실 수 있습니다.
다만, 그 전에 의존성 모듈 설치와 같은 과정을 거치셔야 합니다.
```sh
# 루트 폴더 내부
npm install
npm run docs # API 문서를 반드시 1회 생성해야만 합니다!

# demo 폴더로 이동해서 의존성 설치
cd demo
npm install

# 이제 문서 페이지를 로컬에서 확인 가능합니다!
npm run start
```

### API 문서
View360의 API 문서는 소스 코드 내의 jsdoc 코멘트를 파싱하여 자동으로 생성됩니다.
때문에, API 문서에서 잘못된 부분을 수정하거나 새로운 내용을 추가하고 싶으실 경우
자동으로 생성된 `.mdx` 파일 대신 해당하는 소스코드 내의 jsdoc 코멘트를 직접 수정해주세요.
jsdoc 주석은 일반적으로 이렇게 생겼습니다:
```js
/**
 * Description of View360
 */
class View360 {}
```

실제로는, View360은 Typescript 기반 소스코드를 사용하고 있기 때문에 [TypeDoc](https://typedoc.org/)을 jsdoc 대신 사용하고 있습니다.
사용 가능한 태그나 옵션 등을 확인하시려면 TypeDoc 문서를 참고해주세요.

### 그 외의 문서
Option, Event, Plugin 등의 문서들은 `.mdx` 파일을 직접 수정해주세요!

## 라이센스
기여하신 코드는 레포지토리에 적용된 라이센스를 적용합니다.
즉, View360에 기여하신 코드에는 MIT 라이센스가 적용되므로, 이 점 확인해주세요.
